1 package edu.jiangxin.apktoolbox.swing.extend.listener;
2
3 import edu.jiangxin.apktoolbox.swing.extend.plugin.ChangeMenuPreparePluginController;
4 import edu.jiangxin.apktoolbox.swing.extend.plugin.IPlugin;
5 import edu.jiangxin.apktoolbox.swing.extend.plugin.IPreparePluginCallback;
6 import edu.jiangxin.apktoolbox.utils.Utils;
7
8 import java.io.File;
9
10 public abstract class ChangeMenuToPluginListener implements IPlugin, ChangeMenuListener {
11
12 @Override
13 public boolean isNeedPreChangeMenu() {
14 return true;
15 }
16
17 @Override
18 public void onPreChangeMenu(IPreChangeMenuCallBack callBack) {
19 preparePlugin(new ChangeMenuPreparePluginController(getPluginFilename(), isPluginNeedUnzip(), isPluginNeedUnzipToSeparateDir(), callBack));
20 }
21
22 @Override
23 public void onChangeMenu() {
24 String cmd = getPluginStartupCmd();
25 Utils.executor(cmd, false);
26 }
27
28 @Override
29 public void preparePlugin(IPreparePluginCallback callBack) {
30 callBack.onPrepareStarted();
31 }
32
33 @Override
34 public String getPluginStartupCmd() {
35 String jarPath = Utils.getPluginDirPath() + File.separator + getPluginFilename();
36 return "java -Duser.language=en -Dfile.encoding=UTF8 -jar " + jarPath;
37 }
38 }